#ifndef __APP_MQTT_H__
#define __APP_MQTT_H__

// 定义MQTT服务器地址
#define ADDRESS "tcp://192.168.33.35:1883"
// 定义MQTT客户端唯一标识符   linux 中 可以使用 uuidgen 命令生成
#define CLIENTID "a8649a06-7e57-477a-876d-3db8063335b6"
// 定义订阅主题名称
#define TOPIC_PULL "remote_to_gateway"
// 定义发布主题名称
#define TOPIC_PUSH "gateway_to_remote"
// 定义要发布的消息内容
#define PAYLOAD "Hello World!"
// 定义MQTT服务质量等级
#define QOS 1
// 定义操作超时时间，单位为毫秒
#define TIMEOUT 10000L

/**
 * @brief 初始化mqtt
 * 
 * @return int 0: 成功 -1: 失败
 */
int app_mqtt_init(void);

/**
 * @brief 关闭mqtt
 * 
 */
void app_mqtt_close(void);

/**
 * @brief 发送mqtt消息
 * 
 * @param json json字符串
 * @return int 0: 成功 -1: 失败
 */
int app_mqtt_send(char *json);

/**
 * @brief 注册mqtt接收回调函数
 * 
 * @param callback 回调函数
 */
void app_mqtt_registerRecvCallback(int (*callback)(char *json));

#endif /* __APP_MQTT_H__ */